變數就像一個標籤一樣,這是其中一個方法給程式賦予一個名字,就像是在現實世界裡給東西命名一樣。當某人說“蘋果”,不需要再多做形容,就知道他在說的是什麼東西。這就是變數在做的事情!但變數好用的程度遠超乎想像。
透過連結一個 ruby 物件跟一個變數名稱來創造變數,稱作變數分配,例如:
age = 32
現在輸入 age
ruby 就會翻譯成23
。現在age
這個字已經有一個特殊意義了。你可以用bacon = 32
這個值還是23
不會變,變數只是一的東西的名稱。
要使用一個變數就把他寫下來:
age * 10
# 320
也可以結合多個變數:
age = 32
multiplier = 10
age * multiplier
然後把運算結果也存成一個變數:
total = age * multiplier
如果從一個檔案運行這段程式碼,而不是從irb
,然後就需要使用一個方法,像是把變數的值印出來。
puts total
# 320
在 ruby 裡有不同的變數類型,你在這裡看到的都被稱作區域變數。除了區域變數以外還有其他的類型:
全域變數 global variable ($apple)
實體變數 instance variable (@apple)
類別變數 class variable (@@apple)
常數 constant (Apple)
現在還不需要太擔心這些變數,但是你要知道有這些東西存在。那這些變數之前有什麼不同?就是“作用域”的不同。
變數的作用域可以回答這個問題:
“要從哪裡可以取得這個變數?”
對於我剛開始學習物件導向程式設計是很重要的,放到後面再回頭討論。